package com.dearbinge.data.dao;

import com.dearbinge.data.pojo.thumbs.Thumbs;
import com.dearbinge.data.pojo.thumbs.vo.ThumbsResult;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ThumbsMapper {

    Integer update(Thumbs thumbs);

    Integer insert(Thumbs thumbs);

    Integer delete(Integer id);

    List<Thumbs> getByIdAndThumbsType(@Param("isThumbsId") String isThumbsId, @Param("thumbsType") Integer thumbsType);

    Thumbs getById(Integer id);

    Thumbs getIsThumbs(@Param("isThumbsId") String isThumbsId, @Param("thumbsType") Integer thumbsType, @Param("userId") String userId);

    Thumbs getThumbs(@Param("userId") String userId, @Param("thumbsType") Integer thumbsType, @Param("isThumbsId") String isThumbsId);

    /**
     * 查询点赞列表并关联该点赞用户
     *
     * @param isThumbsId 被点赞表的id
     * @param thumbsType 点赞类型
     * @return 结果
     */
    List<ThumbsResult> listUserThumbs(@Param("isThumbsId") String isThumbsId, @Param("thumbsType") Integer thumbsType);


    /**
     * 计算总数
     *
     * @param isThumbsId 被点赞id
     * @param thumbsType 点赞类型
     * @param userId     用户id
     * @return 结果
     */
    Integer countThumbs(@Param("isThumbsId") String isThumbsId, @Param("thumbsType") Integer thumbsType, @Param("userId") String userId);

    Integer getCountBeLiked(Integer id);
}
